package com.star.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.star.system.dto.RoleSaveDTO;
import com.star.system.dto.RoleUpdateDTO;
import com.star.system.entity.Role;
import com.star.system.vo.RoleDetailVO;
import com.star.system.vo.RolePageVO;
import com.star.system.vo.RoleSimpleVO;
import com.star.system.vo.UserRoleVO;

import java.util.List;

/**
 * 角色 服务类
 *
 * @author yangzj
 */
public interface RoleService extends IService<Role> {

    /**
     * 保存
     *
     * @param dto dto
     */
    void save(RoleSaveDTO dto);

    /**
     * 更新
     *
     * @param dto dto
     */
    void update(RoleUpdateDTO dto);

    /**
     * 删除由ids
     *
     * @param ids id
     */
    void deleteByIds(List<Long> ids);

    /**
     * 列表
     *
     * @return {@link List}<{@link RolePageVO}>
     */
    List<RolePageVO> listPage();


    /**
     * 获取详情
     *
     * @param id id
     * @return {@link RoleDetailVO}
     */
    RoleDetailVO getDetail(Long id);

    /**
     * 用户角色列表
     *
     * @param userIds 用户id
     * @return {@link List}<{@link UserRoleVO}>
     */
    List<UserRoleVO> listUserRole(List<Long> userIds);

    /**
     * 列出所有
     *
     * @return {@link List}<{@link RoleSimpleVO}>
     */
    List<RoleSimpleVO> listAll();
}
